#ifndef __Framework_Win32_Win32Framework_h__
#define __Framework_Win32_Win32Framework_h__

#include "Framework/Framework.h"

#include <map>

namespace Orca {

	class IApp;
	class GfxDriver;

	//--------------------------------------------------------------------------
	class Win32Framework : public Framework {

	public:
		Win32Framework();
		virtual ~Win32Framework();

		virtual bool run(IApp *app, int argc, char** argv);
		virtual void exit();

	private:
		IApp *mApp;
		Kernel *mKernel;

		static Win32Framework *msInst;

		static void _glutIdle(void);
		static void _glutDisplay(void);
		static void _glutReshape(int width, int height);
		static void _glutKeyboard(uint8 c, int x, int y);
		static void _glutMouse(int button, int state, int x, int y);
		static void _glutMouseMotion(int x, int y);
		static void _glutExit(void);
	};

}

#endif	// __Framework_Win32_Win32Framework_h__